<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>12_class</title>
</head>
<body>
</body>
<!--
1. 通过class定义类/实现类的继承
2. 在类中通过constructor定义构造方法
3. 通过new来创建类的实例
4. 通过extends来实现类的继承
5. 通过super调用父类的构造方法
6. 重写从父类中继承的一般方法
-->
<script type="text/javascript">
  function Person(name,age) {
      this.name=name;
      this.age=age;
  }
  let person=new Person('cs',23);
  console.log(person)

  // 定义一个类
  class P{
      // 类的构造方法
      constructor(name,age){
          this.name=name;
          this.age=age;
      }
      // 类的一般方法  放在原型上
    showName (){
      console.log(this.name,this.age);
    }
  }
  let p1=new P('ccs',122);
  console.log(p1);
  p1.showName()

  // 通过extends来实现类的继承
  class Sun extends P{
      constructor(name,age,myziji){
          super(name,age); //调用父类的构造函数
          this.myziji=myziji;
      }
      // 子类重写 父类原型上的方法
      showName(){
          console.log(this.name,this.age,this.myziji);
      }
  }
  let p2=new Sun('www',23,'sdsdsdsd')
  console.log(p2);
  // 子类 继承  父类  原型上的方法
  p1.showName();
  p2.showName();
</script>
</html>